﻿// RestartManager.h
#ifndef RESTARTMANAGER_H
#define RESTARTMANAGER_H

#include <QObject>
#include <QProcess>

class RestartManager : public QObject
{
    Q_OBJECT
public:
    explicit RestartManager(QObject *parent = nullptr);

    // 立即重启
    static void restart();

    // 延迟重启（毫秒）
    static void delayedRestart(int delayMs = 100);

    // 使用新的命令行参数重启
    static void restartWithArgs(const QStringList &newArgs);

    // 获取当前命令行参数
    static QStringList currentArguments();

    // 获取应用程序路径
    static QString applicationFilePath();

    static RestartManager* instance();

signals:
    void aboutToRestart();

private:
    static void performRestart(const QStringList &args = QStringList());
};

#endif // RESTARTMANAGER_H
